---
title: KeyboardOnlyGraphEngine 纯键盘图表引擎
icon: Network
relatedFile: app/src/core/service/controlService/keyboardOnlyEngine/keyboardOnlyGraphEngine.tsx
---

纯键盘图表引擎，用于通过键盘操作创建和连接图论节点。它管理一个虚拟的目标位置，用户可以通过键盘控制该位置，并在满足条件时在此位置创建新节点或连接现有节点。

## 虚拟目标位置管理

*   `virtualTargetLocation()`: 获取当前虚拟目标位置。
*   `tick()`: 更新虚拟目标位置的内部状态。
*   `moveVirtualTarget(delta: Vector)`: 移动虚拟目标位置。

## 创建流程控制

*   `isEnableVirtualCreate()`: 判断是否满足通过键盘创建节点的前置条件（例如，是否只有一个节点被选中）。
*   `isCreating()`: 判断当前是否处于键盘创建模式。
*   `createStart()`: 开始键盘创建流程，记录开始时间并初始化虚拟目标位置。
*   `createFinished()`: 结束键盘创建流程，根据虚拟目标位置是空白还是已有实体来创建新节点或连接现有节点。
*   `createCancel()`: 取消当前的创建流程。
*   `getPressTabTimeInterval()`: 获取按下Tab键的时间间隔，用于判断操作是否过快。

## 实体检测

*   `isTargetLocationHaveEntity()`: 判断虚拟目标位置是否已有实体。
